package com.atguigu.demomptest.util;

import org.springframework.stereotype.Component;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * @author fenge
 */
@Component
public class PrintPropertiesUtil {
//    public static T outPrint(String s1, Object o) {
//        try {
//            Class c = Class.forName(s1);
//            Field[] fields = c.getDeclaredFields();
//            for (Field f : fields) {
//                f.setAccessible(true);
//            }
//            System.out.println("=============" + s1 + "===============");
//            for (Field f : fields) {
//                String field = f.toString().substring(f.toString().lastIndexOf(".") + 1);         //取出属性名称
//
//                System.out.println(field + " --> " + f.get(o));
//            }
//        } catch (ClassNotFoundException e) {
//            e.printStackTrace();
//        } catch (IllegalArgumentException e) {
//            e.printStackTrace();
//        } catch (IllegalAccessException e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
    private static Object getFieldValueByName(String fieldName, Object o) {
        try {
            String firstLetter = fieldName.substring(0, 1).toUpperCase();
            String getter = "get" + firstLetter + fieldName.substring(1);
            Method method = o.getClass().getMethod(getter, new Class[] {});
            Object value = method.invoke(o, new Object[] {});
            return value;
        } catch (Exception e) {
//            logger.error("获取属性值失败！" + e, e);
        }
        return null;
    }
}
